package proyecto.dao;

import java.sql.*;
import java.util.ArrayList;
import java.util.Collection;
import proyecto.modelo.Llamada;

public class LlamadaDAO {

    public Llamada insertar(Llamada ll) {
        String query = "INSERT INTO llamada (useroperador,areaj_idarea,idtelefono,motivollamada,detallellamada,fechallamada,horallamada,derivadollamada,referenciaderivado,duracionllamada,idtipo) " + "VALUES (?,?,?,?,?,?,?,?,?,?,?)";
        System.err.println(query);
        Connection con = null;
        PreparedStatement stmt = null;
        try {
            con = ConexionBD.obtenerConexion();
            stmt = con.prepareStatement(query);
            stmt.setString(1, ll.getUseroperador());
            stmt.setInt(2, ll.getIdarea());
            stmt.setInt(3, ll.getIdtelefono());
            stmt.setString(4, ll.getMotivo());
            stmt.setString(5, ll.getDetalle());
            stmt.setString(6, ll.getFecha());
            stmt.setString(7, ll.getHora());
            stmt.setString(8, ll.getDerivado());
            stmt.setString(9, ll.getReferencia());
            stmt.setString(10, ll.getDuracion());
            stmt.setInt(11, ll.getIdtipo());
            int i = stmt.executeUpdate();
            if (i != 1) {
                throw new SQLException("No se pudo insertar");
            }
            stmt.close();
            con.close();
        } catch (SQLException e) {
            System.err.println(e.getMessage());
        }
        return ll;
    }

    public Collection<Llamada> buscarAll(String nombre) {
        String query = "SELECT l.idllamada,l.fechallamada,l.horallamada,tp.nombretipo,l.useroperador,t.numerotelefonico,c.nombrecliente FROM llamada l, telefono t, cliente c, tipo tp WHERE (l.idtelefono=t.idtelefono AND c.idtelefono=t.idtelefono AND tp.idtipo = l.idtipo) AND (c.nombrecliente like '%"+nombre+"%')";
        Collection<Llamada> c = new ArrayList<Llamada>();
        try {
            Connection con = ConexionBD.obtenerConexion();
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) {
                Llamada ll = new Llamada();
                ll.setIdllamada(rs.getInt("l.idllamada"));
                ll.setFechallamada(rs.getString("l.fechallamada"));
                ll.setHorallamada(rs.getString("l.horallamada"));
                ll.setNombretipo(rs.getString("tp.nombretipo"));
                ll.setUseroperador(rs.getString("l.useroperador"));
                ll.setNumerotelefonico(rs.getString("t.numerotelefonico"));
                ll.setNombrecliente(rs.getString("c.nombrecliente"));
                c.add(ll);
            }
            rs.close();
            stmt.close();
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return c;
    }
}
